package com.drug.wms.mapper;

import java.util.List;

import com.drug.wms.domain.BusGoodsBaseInfo;
import com.drug.wms.domain.BusGoodsBaseInfoAndSku;
import com.drug.wms.page.BusGoodsBaseInfoAndSkuPage;
import org.apache.ibatis.annotations.Param;

/**
 * 商品基本信息Mapper接口
 *
 * @author ruoyi
 * @date 2021-11-09
 */
public interface BusGoodsBaseInfoMapper {
    /**
     * 查询商品基本信息
     *
     * @param id 商品基本信息主键
     * @return 商品基本信息
     */
    public BusGoodsBaseInfo selectBusGoodsBaseInfoById(String id);

    /**
     * 查询商品基本信息列表
     *
     * @param busGoodsBaseInfo 商品基本信息
     * @return 商品基本信息集合
     */
    public List<BusGoodsBaseInfo> selectBusGoodsBaseInfoList(BusGoodsBaseInfo busGoodsBaseInfo);

    /**
     * 新增商品基本信息
     *
     * @param busGoodsBaseInfo 商品基本信息
     * @return 结果
     */
    public int insertBusGoodsBaseInfo(BusGoodsBaseInfo busGoodsBaseInfo);

    /**
     * 修改商品基本信息
     *
     * @param busGoodsBaseInfo 商品基本信息
     * @return 结果
     */
    public int updateBusGoodsBaseInfo(BusGoodsBaseInfo busGoodsBaseInfo);

    /**
     * 删除商品基本信息
     *
     * @param id 商品基本信息主键
     * @return 结果
     */
    public int deleteBusGoodsBaseInfoById(String id);

    /**
     * 批量删除商品基本信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBusGoodsBaseInfoByIds(String[] ids);

    /**
     * 根据商品编号批量获取商品信息
     *
     * @param goodsNos
     * @return
     */
    List<BusGoodsBaseInfo> selectBusGoodsBaseInfoByGoodsNos(@Param("goodsNos") List<String> goodsNos);

    /**
     * 通过商品编号获取商品信息
     * @param goodsNo
     * @return
     */
    BusGoodsBaseInfo selectBusGoodsBaseInfoByGoodsNo(String goodsNo);

    List<BusGoodsBaseInfoAndSku> getSaleGoods(BusGoodsBaseInfoAndSkuPage busGoodsBaseInfoAndSkuPage);

}
